In the earliest computer systems the computers maintained an independent file or data base for the exclusive use of each program which ran on the computer. Since other applications programs could use some of the same data bases it was found that there was a significant amount of duplication and data redundancy and that for efficient use the data is placed in a common data base representing the collection of all interrelated data to serve a number of application programs. The data is stored in the data base in an order or arrangement which is independent of the ordering of the data in the application programs.
The computer would then have a data base management system which is a set of program instructions to manage this data and to function as an interface between the application programs and the data. This data base management interface function is provided by a mapping or data modelling structure for the data base sometimes referred to as a schema. This structure indicates which elements of the data base are required for use in a particular application program. Each application program accesses the common data base through this mapping or data model and permits access only to the data required for operation of a particular application program.
The data base management system has its own architecture which relates to the physical structure and organization of the memory device which are controlled by the data base management system. The architecture further defines the relation and interconnection of the files, records, record segments, and mapping data models or schemas within the common data base. This architecture is defined at the time the data base is created and is reflected in a data dictionary.
The data dictionary is a software structure that contains a list of all the application program data bases contained in the common data base and their associated mapping or data models or schemas. The data dictionary also contains a definition of each map or data model and the various types of data elements which are stored in the memory along with security information.
Until recently the data dictionaries were static. These static dictionaries cannot be changed except by the data base administrator who must recompile the data base system and the data dictionary with each change that is made to the elements. In this type of arrangement, the computer system user has no ability to change this architecture except through the data base administrator. The data base management system also stores the data in a form and format dictated by the data base management system architecture. The data can be accessed under this system only by requesting the data in a manner which is consistent with this form and format.
Recently the limitations of a static data dictionary have been overcome by adding active data dictionary to the basic data base management system. An example of an active data dictionary is described in U.S. Pat. No. 4,774,661 of Kumpati entitled "Data Base Management System with Active Data Dictionary". This patent is incorporated herein by reference. This type of data base management system provides the user with a model of the data dictionary, which data model is architecturally consistent with the model of the data stored in the data base. The data dictionary itself contains data which defines various maps or models (schema) and application program data bases and this data dictionary can be modified as can the data contained in the common data base. The data dictionary is not only part of the data base management system but is also a data base of itself.
In a data dictionary, the data elements are normalized for optimal data usage. In normalizing, the data directory contains all of the definitions of the data and eliminates duplicates. Further, there is a grouping the data elements in the best grouping in their most normal and best usable form. The normalization theory is built around the concept of normal forms. A relation is said to be in a particular normal form if it satisfies a certain specified set of constraints. For example, a relation is said to be in first normal form if and only if it satisfies the constraint that it contains atomic values only. To put it another way, at every row-and-column position in a relational table there always exists precisely one value, never a set of values. Through the normalization process dictionary elements tend to span multiple records usually requiring multiple relations if the dictionary is being stored using Structured Query Language (SQL), which is a language used to manipulate the relations.
We can define a relational data base as a data base that is perceived by the user as a collection of time-varying, normalized relations of assorted degrees. (By "time-varying relations" we mean that the extensions of the relations are time-varying). In other words, the term "relational data base" means a data base for which the operators available to the user are ones that operate on relational structures. It does not necessarily mean that the data is stored in the form of physical tables. In traditional terms, a relation resembles a file, a tuple a record (occurrence, not type), and an attribute a field (type, not occurrence). These correspondences are at best approximate, however. To put it another way, relations may be thought of as highly disciplined files--the discipline concerned being one that results in a considerable simplification in the data structures with which the user must deal, and hence in a corresponding simplification in the operators needed to manipulate them. It can be concluded by informally summarizing the major features of relational files that distinguish them from traditional, undisciplined files as:
1) Each "file" contains only one record type. PA1 2) Every record occurrence in a given "file" has the same number of fields. PA1 3) Each record occurrence has a unique identifier. PA1 4) Within a "file," record occurrences either have an unspecified ordering or are ordered according to values contained within those occurrences.
The data is made up of objects, which are made up of entities, relationships, attributes, etc. An object instance consists of one or more component instances and these component instances can be stored in different formats. The individual component instances are stored in a completely relational format. In relational format, all of the component instances are stored separately from each other. In order to retrieve an instance of an object, the system has to retrieve each individual record from the relation that it resides in and build a structure that represents the object structure using the individual component instances. When the user was finished using the object, the entire structure could then be decomposed into individual component .instances and stored into the individual relations. This need to perform multiple selects in an execution time environment impedes the performance of the run time.